xenpaging: Open paging file only if xenpaging_init() succeeds
authorKeir Fraser <keir@xen.org>
Fri, 26 Nov 2010 14:15:59 +0000 (14:15 +0000)
committerKeir Fraser <keir@xen.org>
Fri, 26 Nov 2010 14:15:59 +0000 (14:15 +0000)
Open paging file only if xenpaging_init() succeeds. It can fail if the
host does not support the required virtualization features such as EPT
or if xenpaging was already started for this domain_id.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Already-Acked-by: Patrick Colp <pjcolp@cs.ubc.ca>
Already-Acked-by: Keir Fraser <keir.fraser@citrix.com>
tools/xenpaging/xenpaging.c

index 778537bd5c473b81fe2c15c776aa97f6b17c2bc0..64e265c40539dd333e27c52eb4c8ba5936b7ac9f 100644 (file)
@@ -502,15 +502,6 @@ int main(int argc, char *argv[])
 
     victims = calloc(num_pages, sizeof(xenpaging_victim_t));
 
-    /* Open file */
-    sprintf(filename, "page_cache_%d", domain_id);
-    fd = open(filename, open_flags, open_mode);
-    if ( fd < 0 )
-    {
-        perror("failed to open file");
-        return -1;
-    }
-
     /* Seed random-number generator */
     srand(time(NULL));
 
@@ -522,6 +513,15 @@ int main(int argc, char *argv[])
         goto out;
     }
 
+    /* Open file */
+    sprintf(filename, "page_cache_%d", domain_id);
+    fd = open(filename, open_flags, open_mode);
+    if ( fd < 0 )
+    {
+        perror("failed to open file");
+        return -1;
+    }
+
     /* Evict pages */
     memset(victims, 0, sizeof(xenpaging_victim_t) * num_pages);
     for ( i = 0; i < num_pages; i++ )